Wireless sensor networks involving low-cost, low-duty-cycle end nodes have traditionally placed most of the flexibility requirements (variability in modes of behavior), to the extent that such variability exists, in the higher-functionality access points/gateways/network coordinators which manage the collection of end nodes, rather than in the end nodes themselves. In such networks, the end nodes have a single set of simple software applications, sensors, sensor filter programs, reports, etc. which define their behavior. That is, the end nodes are static. In recent years, some variability has been introduced into the behavior of end nodes in some advanced networks (e.g., using firmware which can be changed via wireless boot loading). These end nodes are dynamic in the sense that their behavior can be changed, but there exists a great deal of complexity in managing these behaviors and generally the changes are kept very simple.